﻿using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;

namespace Kea
{
    public abstract class DataPlanFilterable<T> : DataPlanBaseTRW<T> where T : TableReaderWriter<T>, new()
    {

        public DataPlanJoinableBase<T> Where(Func<T, bool> filter)
        {
            return new DataPlanJoinableBase<T>()
            {
                IndexName = IndexName,
                Filters = new LinkedFilter<T>(filter, Filters),
                Comparer = Comparer,
                IndexValuesLowerLimit = IndexValuesLowerLimit,
                IndexValuesUpperLimit = IndexValuesUpperLimit
            };
        }

//        abstract internal Func<Joinable<T>> GetJoinable();

    }
}
